package com.quanxiaoha.xiaohashu.auth.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Objects;

/**
 * @author: Jovan
 * @date: 2024/11/24
 * @description: 登录类型
 */
@Getter
@AllArgsConstructor
public enum LoginTypeEnum {
    // 验证码登录方式
    VERIFICATION_CODE(1),
    // 密码登录方式
    PASSWORD(2)
    ;

    // 登录类型对应的值
    private final Integer value;

    /**
     * 根据给定的代码返回对应的登录类型
     * 如果没有找到匹配的登录类型，则返回null
     *
     * @param code 登录类型的代码表示
     * @return 对应登录类型的枚举实例，如果找不到匹配项则返回null
     */
    public static LoginTypeEnum value(Integer code) {
        // 遍历所有登录类型枚举实例
        for (LoginTypeEnum item : LoginTypeEnum.values()) {
            // 检查当前枚举实例的值是否与给定的代码相等
            if (Objects.equals(code, item.getValue())) {
                // 如果相等，返回当前枚举实例
                return item;
            }
        }
        // 如果没有找到匹配的枚举实例，返回null
        return null;
    }
}

